import { accountService } from "../service/accountService";

export var common_utils = {
    
    request: function(param) {
        
        let requestUrl = this.getServerURL(param.url);


        const token = localStorage.getItem('token');
        const headers = {
            'Content-Type': 'application/json',
        };
        // 如果有 token，添加到请求头
        if (token) {
            headers['Authorization'] = `Bearer ${token}`;
        }

        fetch(requestUrl, {
            method: param.method,
            headers: headers,
            body: param.method === 'GET'? null : JSON.stringify(param.data)
        })
           .then(response => {
                // 401 未授权自动跳转登录
                
                
                return response.json();
            })
           .then(result => {
               if(result.code === 1){
                   this.toLogin();
               }
               if(result.code === 401)
               {
                 accountService.logout();
                 this.toLogin();
               }
                console.log(result);
                param.success(result)
            })
           .catch(err => {
                console.error(err);
                param.error ? param.error(err) : this.errorTips(err.message);
            });    
    },
    formRequest: function (param) {
        // 获取请求的 URL
        let requestUrl = this.getServerURL(param.url);
        // 从本地存储中获取 token
        const token = localStorage.getItem('token');
        // 定义请求头
        const headers = {};
        // 如果有 token，添加到请求头
        if (token) {
            headers['Authorization'] = `Bearer ${token}`;
        }
        // 发起 fetch 请求
        fetch(requestUrl, {
            method: param.method,
            headers: headers,
            body: param.data,
        })
           .then(response => {
                // 处理 401 未授权状态
                if (response.status === 401) {
                    this.toLogin();
                    return Promise.reject(new Error('未授权'));
                }
                // 将响应转换为 JSON
                return response.json();
            })
           .then(result => {
                // 如果返回码为 1，跳转到登录页面
                if (result.code === 1) {
                    this.toLogin();
                }
                console.log(result);
                // 调用成功回调函数
                if (param.success) {
                    param.success(result);
                }
            })
           .catch(err => {
                console.error(err);
                // 调用错误回调函数或显示错误提示
                if (param.error) {
                    param.error(err);
                } else {
                    this.errorTips(err.message);
                }
            });
    },
    toLogin: function() {
        window.location.href = '/login'; // 根据实际登录页路径修改
    },
    toMain: function() {
        window.location.href = '/main'; // 根据实际主页面路径修改
    },
    getServerURL: function(path) {
        const baseURL = 'http://localhost:8080/';// 根据实际API地址修改
        return `${baseURL}${path}`;
    },
    errorTips: function(msg) {
        // 此处可替换为实际的UI提示组件
        console.error('错误提示:', msg);
        alert(msg);
    },
    getParamFromUrl: function(index) {
        const url = window.location.href;
        const parts = url.split("/"); // 按 "/" 分割成数组，例如 ["", "user", "1", "cart"]
       return parts[index];
    },
    getUsername: function() {
      const user=JSON.parse(localStorage.getItem('user'));
      

      if(user){

        return user.username;
      }
      return "1";



      
    },
    jumpTo:function(path) {
        window.location.href = `${path}`; // 跳转到新的路径
    },
    reloadPage: function() {
        window.location.reload(); // 刷新当前页面
    },
    getServerImageURL: function(path) {
        const baseURL = 'http://localhost:8080/images/';// 根据实际图片服务器地址修改
        return `${baseURL}${path}`;
    }



};